package com.jeff.question100;

public class SubsequenceChecker {

    public static boolean isSubsequence(String S, String L) {
        int i = 0; // 指向S的索引
        int j = 0; // 指向L的索引

        while (i < S.length() && j < L.length()) {
            // 当找到S[i]在L[j]的位置时，移动S的指针
            if (S.charAt(i) == L.charAt(j)) {
                i++;
            }
            // 无论是否匹配，L的指针都需要向后移动
            j++;
        }

        // 如果S的指针到达末尾，说明S是L的子序列
        return i == S.length();
    }

    public static void main(String[] args) {
        String S = "ace";
        String L = "abcde";
        System.out.println(isSubsequence(S, L) ? S + " 是 " + L + " 的有效子序列" : S + " 不是 " + L + " 的有效子序列");

        S = "aec";
        System.out.println(isSubsequence(S, L) ? S + " 是 " + L + " 的有效子序列" : S + " 不是 " + L + " 的有效子序列");
    }
}
